import Vue from 'vue'
import store from '@/store'

Vue.prototype.$isLogin = () => {
	return store.state.isLogin; //是否登录
}
Vue.prototype.$userinfo = () => {
	return store.state.userinfo;
} //用户信息
Vue.prototype.$needAuth = () => {
	return store.state.needAuth; //是否需要授权
}

Vue.prototype.$setIsLogin = (isLogin) => {
	store.state.isLogin = isLogin;
}; //设置是否登录
Vue.prototype.$setUseInfo = (userinfo) => {
	store.state.userinfo = userinfo;
}; //设置用户信息
Vue.prototype.$setNeedAuth = (needAuth) => {
	store.state.needAuth = needAuth;
}; //设置是否需要授权

Vue.prototype.$login = () => {
	return new Promise((resolve, reject) => {
		wx.login({
			success(res) {
				Vue.prototype.$log(res);
				Vue.prototype.$u.api.login({
					appid: Vue.prototype.$appid,
					code: res.code
				}).then(res2 => {
					Vue.prototype.$log(res2);
					uni.setStorageSync('token', res2.data.token);
					if (res2.code === 200) {
						Vue.prototype.$setIsLogin(true);
						Vue.prototype.$setNeedAuth(false);
						Vue.prototype.$setUseInfo(res2.data.user);
					}
					resolve(res2);
				}).catch(err => {
					reject(err);
				})
			},
			fail(err) {
				reject(err)
			}
		})
	})
}
Vue.prototype.$auth = (userinfo = {}) => {
	
	return new Promise((resolve, reject) => {
		Vue.prototype.$log('是否需要授权', Vue.prototype.$needAuth());
		if (!Vue.prototype.$needAuth()) {
			Vue.prototype.$log('无需授权');
			resolve(true);
			return;
		}
		Vue.prototype.$u.api.auth(userinfo).then(res2 => {
			Vue.prototype.$log(res2);
			if (res2.code === 200) {
				Vue.prototype.$setNeedAuth(false);
				Vue.prototype.$setIsLogin(true);
				resolve(true)
			} else {
				reject(false);
			}
		})
		// wx.getUserProfile({
		// 	desc: '用于完善会员资料', //声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
		// 	success: (res) => {
		// 		Vue.prototype.$log(res);
		// 		let userinfo = {
		// 			nickname: res.userInfo.nickName,
		// 			avatar: res.userInfo.avatarUrl,
		// 		}
		// 		Vue.prototype.$u.api.auth(userinfo).then(res2 => {
		// 			Vue.prototype.$log(res2);
		// 			if (res2.code === 200) {
		// 				Vue.prototype.$setNeedAuth(false);
		// 				Vue.prototype.$setIsLogin(true);
		// 				resolve(true)
		// 			} else {
		// 				reject(false);
		// 			}
		// 		})
		// 	},
		// 	fail(err) {
		// 		reject(err);
		// 	}
		// })

	})
	
}
